<?php
class PM_e
{
    public static function __index( $room_id , $user_id , $put_id , $card_number , $db_connect ){
        //取出房间信息
        $room_info    = $db_connect->select('*')->from('tt_room')->where("room_id= '". $room_id ."' ")->row();
        //是否还有人处于碰的状态？
        $is_peng = 0;
        foreach( $room_info as $key => $value ){
            if( strstr($key,'_is_peng') != false && $value == 1 ){
                $is_peng = 1;break;
            }
        }
        //获取当前取消人的索引信息
        $user_index = PHZ_User::__get_user_Room_Index( $room_info , $user_id );
        //当前的吃状态是否还存在；已经不存在的吃状态的情况下；不允许进行“吃取消操作”
        if( $room_info['p' . $user_index . '_is_chi'] == 0 ){
            return true;//如果吃状态都没了，还吃什么？证明已经被人碰了或者胡了
        }
        //添加一个pass过章子记录
        PHZ_Card::__set_UserPass_CHI_PENG_HU( $room_info , $user_id , $card_number , $db_connect );
        //取消吃牌人自己当前的吃状态跟碰状态
        $db_connect->update('tt_room')->cols( array( 'p'. $user_index .'_is_chi' =>0 , 'p'. $user_index .'_is_peng' => 0 ) )->where('room_id=' . $room_id )->query();
        //给所有人发送吃牌取消信息
        $temp = array();
        $temp['pl']          = 7;//7为用户取消吃牌
        $temp['card_number'] = $card_number;//牌号
        $temp['put_uid']     = 0;//全部人丧失出牌权
        $temp['mop_uid']     = 0;//全部人丧失摸牌权
        $temp['is_peng']     = $is_peng;//当前是否还有人能碰？可能取消吃的人在前
        $temp['is_chi']      = 0;//取消吃则当前没人处于吃牌状态
        $temp['fail_uid']    = $user_id;//取消人UID
        PHZ_Log::__send_user_log( $room_info , $put_id , $temp , $db_connect );
        //设置出牌权
        PHZ_Room::__setThisPutUser( $room_info['room_id'] , $temp['put_uid'] , $db_connect );
        //如果取消了吃，还有人能碰。则等待碰的人做操作
        if( $is_peng == 1 ) {
            return true;
        }
        //否则则进行下家自动摸牌操作;
        PM_n::__index( $room_info , $put_id , 1 , $db_connect , $put_id , 0 );
    }
}